package com.xqzgj.system.domain;

import com.xqzgj.common.annotation.Excel;
import com.xqzgj.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 库存统计对象 stock_statistics
 */
public class StockStatistics extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 统计ID */
    private Long id;

    /** 统计类型（1日统计 2周统计 3月统计 4年统计） */
    @Excel(name = "统计类型", readConverterExp = "1=日统计,2=周统计,3=月统计,4=年统计")
    private String statisticsType;

    /** 统计日期 */
    @Excel(name = "统计日期")
    private String statisticsDate;

    /** 商品ID */
    @Excel(name = "商品ID")
    private Long goodsId;

    /** 商品编码 */
    @Excel(name = "商品编码")
    private String goodsCode;

    /** 商品名称 */
    @Excel(name = "商品名称")
    private String goodsName;

    /** 商品规格 */
    @Excel(name = "商品规格")
    private String goodsSpec;

    /** 商品单位 */
    @Excel(name = "商品单位")
    private String goodsUnit;

    /** 仓库ID */
    @Excel(name = "仓库ID")
    private Long warehouseId;

    /** 仓库名称 */
    @Excel(name = "仓库名称")
    private String warehouseName;

    /** 期初数量 */
    @Excel(name = "期初数量")
    private Integer beginQuantity;

    /** 入库数量 */
    @Excel(name = "入库数量")
    private Integer inQuantity;

    /** 出库数量 */
    @Excel(name = "出库数量")
    private Integer outQuantity;

    /** 期末数量 */
    @Excel(name = "期末数量")
    private Integer endQuantity;

    /** 入库金额 */
    @Excel(name = "入库金额")
    private Double inAmount;

    /** 出库金额 */
    @Excel(name = "出库金额")
    private Double outAmount;

    /** 库存金额 */
    @Excel(name = "库存金额")
    private Double stockAmount;

    /** 平均单价 */
    @Excel(name = "平均单价")
    private Double avgPrice;

    /** 周转率 */
    @Excel(name = "周转率")
    private Double turnoverRate;

    /** 周转天数 */
    @Excel(name = "周转天数")
    private Integer turnoverDays;

    /** 统计状态（0未统计 1已统计） */
    @Excel(name = "统计状态", readConverterExp = "0=未统计,1=已统计")
    private String statisticsStatus;

    /** 统计备注 */
    private String statisticsRemark;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setStatisticsType(String statisticsType) {
        this.statisticsType = statisticsType;
    }

    public String getStatisticsType() {
        return statisticsType;
    }

    public void setStatisticsDate(String statisticsDate) {
        this.statisticsDate = statisticsDate;
    }

    public String getStatisticsDate() {
        return statisticsDate;
    }

    public void setGoodsId(Long goodsId) {
        this.goodsId = goodsId;
    }

    public Long getGoodsId() {
        return goodsId;
    }

    public void setGoodsCode(String goodsCode) {
        this.goodsCode = goodsCode;
    }

    public String getGoodsCode() {
        return goodsCode;
    }

    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }

    public String getGoodsName() {
        return goodsName;
    }

    public void setGoodsSpec(String goodsSpec) {
        this.goodsSpec = goodsSpec;
    }

    public String getGoodsSpec() {
        return goodsSpec;
    }

    public void setGoodsUnit(String goodsUnit) {
        this.goodsUnit = goodsUnit;
    }

    public String getGoodsUnit() {
        return goodsUnit;
    }

    public void setWarehouseId(Long warehouseId) {
        this.warehouseId = warehouseId;
    }

    public Long getWarehouseId() {
        return warehouseId;
    }

    public void setWarehouseName(String warehouseName) {
        this.warehouseName = warehouseName;
    }

    public String getWarehouseName() {
        return warehouseName;
    }

    public void setBeginQuantity(Integer beginQuantity) {
        this.beginQuantity = beginQuantity;
    }

    public Integer getBeginQuantity() {
        return beginQuantity;
    }

    public void setInQuantity(Integer inQuantity) {
        this.inQuantity = inQuantity;
    }

    public Integer getInQuantity() {
        return inQuantity;
    }

    public void setOutQuantity(Integer outQuantity) {
        this.outQuantity = outQuantity;
    }

    public Integer getOutQuantity() {
        return outQuantity;
    }

    public void setEndQuantity(Integer endQuantity) {
        this.endQuantity = endQuantity;
    }

    public Integer getEndQuantity() {
        return endQuantity;
    }

    public void setInAmount(Double inAmount) {
        this.inAmount = inAmount;
    }

    public Double getInAmount() {
        return inAmount;
    }

    public void setOutAmount(Double outAmount) {
        this.outAmount = outAmount;
    }

    public Double getOutAmount() {
        return outAmount;
    }

    public void setStockAmount(Double stockAmount) {
        this.stockAmount = stockAmount;
    }

    public Double getStockAmount() {
        return stockAmount;
    }

    public void setAvgPrice(Double avgPrice) {
        this.avgPrice = avgPrice;
    }

    public Double getAvgPrice() {
        return avgPrice;
    }

    public void setTurnoverRate(Double turnoverRate) {
        this.turnoverRate = turnoverRate;
    }

    public Double getTurnoverRate() {
        return turnoverRate;
    }

    public void setTurnoverDays(Integer turnoverDays) {
        this.turnoverDays = turnoverDays;
    }

    public Integer getTurnoverDays() {
        return turnoverDays;
    }

    public void setStatisticsStatus(String statisticsStatus) {
        this.statisticsStatus = statisticsStatus;
    }

    public String getStatisticsStatus() {
        return statisticsStatus;
    }

    public void setStatisticsRemark(String statisticsRemark) {
        this.statisticsRemark = statisticsRemark;
    }

    public String getStatisticsRemark() {
        return statisticsRemark;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("statisticsType", getStatisticsType())
                .append("statisticsDate", getStatisticsDate())
                .append("goodsId", getGoodsId())
                .append("goodsCode", getGoodsCode())
                .append("goodsName", getGoodsName())
                .append("goodsSpec", getGoodsSpec())
                .append("goodsUnit", getGoodsUnit())
                .append("warehouseId", getWarehouseId())
                .append("warehouseName", getWarehouseName())
                .append("beginQuantity", getBeginQuantity())
                .append("inQuantity", getInQuantity())
                .append("outQuantity", getOutQuantity())
                .append("endQuantity", getEndQuantity())
                .append("inAmount", getInAmount())
                .append("outAmount", getOutAmount())
                .append("stockAmount", getStockAmount())
                .append("avgPrice", getAvgPrice())
                .append("turnoverRate", getTurnoverRate())
                .append("turnoverDays", getTurnoverDays())
                .append("statisticsStatus", getStatisticsStatus())
                .append("statisticsRemark", getStatisticsRemark())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .toString();
    }
}